package w83a.w83aOperacionesPaso.w83aActas;


import java.util.HashMap;
import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83a.w83aBeans.W83aActasBean;
import w83a.w83aBeans.W83aListaDelegadosBean;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaAgrupacionesOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83aTablaActasIrEditarAction extends Q70ActionPasoOP{

	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		W83aActasBean acta=(W83aActasBean)contexto.get("w83aNuevaActaBean");
		/*HashMap delegados=(HashMap)acta.getListaDelegados();
		
		HashMap w83adelegadosDelegado=new HashMap();
		HashMap w83aescrutinioC1=new HashMap();
		HashMap w83aescrutinioC2=new HashMap();
		HashMap w83adiferenciaC1=new HashMap();
		HashMap w83adiferenciaC2=new HashMap();
		HashMap w83adelegadosEscrutinioDiferencia=new HashMap();
		Collection c = delegados.values();
		Iterator itr = c.iterator();
		int valor=0;
		int sumaDelegados=0;
		int sumaDelegadosH=0;
		int sumaDelegadosM=0;
		while(itr.hasNext()){
			W83aListaDelegadosBean delegado=(W83aListaDelegadosBean)itr.next();
			if(StringUtils.isEmpty(delegado.getFechaBaja())){
				valor=Integer.parseInt(delegado.getNumero());
				if(w83adelegadosDelegado!=null){
					if(w83adelegadosDelegado.containsKey(delegado.getCodColegio()+"#"+delegado.getSexo()+"#"+delegado.getCodSindicato())){
						valor=valor+Integer.parseInt((String)w83adelegadosDelegado.get(delegado.getCodColegio()+"#"+delegado.getSexo()+"#"+delegado.getCodSindicato()));
					}
				}
				if(StringUtils.isEmpty(delegado.getFechaBaja())){
					sumaDelegados++;
					if(W83aClsConstantes.CONSTANTE_VARON.equals(delegado.getSexo())){
						sumaDelegadosH++;
					}else if(W83aClsConstantes.CONSTANTE_MUJER.equals(delegado.getSexo())){
						sumaDelegadosM++;						
					}
				}
				w83adelegadosDelegado.put(delegado.getCodColegio()+"#"+delegado.getSexo()+"#"+delegado.getCodSindicato(), String.valueOf(valor));
			}
		}
		contexto.set("w83adelegadosDelegado", w83adelegadosDelegado);
		contexto.set("w83aListaDelegados", delegados);
		acta.setTotalDelegadosDelegado(String.valueOf(sumaDelegados));
		acta.setTotalDelegadosDelegadoH(String.valueOf(sumaDelegadosH));
		acta.setTotalDelegadosDelegadoM(String.valueOf(sumaDelegadosM));
		acta.setListaDelegados(new HashMap());
		
		HashMap escrutinios=(HashMap)acta.getListaEscrutinios();
		c = escrutinios.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83aListaEscrutiniosBean escrutinio=(W83aListaEscrutiniosBean)itr.next();
			if(escrutinio.getCodColegio().equals("0")){
				w83aescrutinioC1.put(escrutinio.getSindicato(), escrutinio);
				w83adelegadosEscrutinioDiferencia.put("0#H#"+escrutinio.getSindicato(), escrutinio.getHombres());
				w83adelegadosEscrutinioDiferencia.put("0#M#"+escrutinio.getSindicato(), escrutinio.getMujeres());
			}
			else{
				w83aescrutinioC2.put(escrutinio.getSindicato(), escrutinio);
				w83adelegadosEscrutinioDiferencia.put("1#H#"+escrutinio.getSindicato(), escrutinio.getHombres());
				w83adelegadosEscrutinioDiferencia.put("1#M#"+escrutinio.getSindicato(), escrutinio.getMujeres());
			}
		}
		contexto.set("w83aListaEscrutiniosC1", w83aescrutinioC1);
		contexto.set("w83aListaEscrutiniosC2", w83aescrutinioC2);
		HashMap diferencias=(HashMap)acta.getListaDiferencias();
		c = diferencias.values();
		itr = c.iterator();
		while(itr.hasNext()){
			W83aListaDiferenciasBean diferencia=(W83aListaDiferenciasBean)itr.next();
			int anterior=0;
			if(diferencia.getCodColegio().equals("0")){
				w83adiferenciaC1.put(diferencia.getSindicato(), diferencia);
				anterior=Integer.parseInt(diferencia.getHombres());
				if(StringUtils.isNotEmpty((String)w83adelegadosEscrutinioDiferencia.get("0#H#"+diferencia.getSindicato()))){
					anterior=anterior+Integer.parseInt((String)w83adelegadosEscrutinioDiferencia.get("0#H#"+diferencia.getSindicato()));
				}
				if(anterior!=0){
					w83adelegadosEscrutinioDiferencia.put("0#H#"+diferencia.getSindicato(), String.valueOf(anterior));
				}
				
				anterior=Integer.parseInt(diferencia.getMujeres());
				if(StringUtils.isNotEmpty((String)w83adelegadosEscrutinioDiferencia.get("0#M#"+diferencia.getSindicato()))){
					anterior=anterior+Integer.parseInt((String)w83adelegadosEscrutinioDiferencia.get("0#M#"+diferencia.getSindicato()));
				}
				if(anterior!=0){
					w83adelegadosEscrutinioDiferencia.put("0#M#"+diferencia.getSindicato(), String.valueOf(anterior));
				}
			}
			else{
				w83adiferenciaC2.put(diferencia.getSindicato(), diferencia);
				anterior=Integer.parseInt(diferencia.getHombres());
				if(StringUtils.isNotEmpty((String)w83adelegadosEscrutinioDiferencia.get("1#H#"+diferencia.getSindicato()))){
					anterior=anterior+Integer.parseInt((String)w83adelegadosEscrutinioDiferencia.get("1#H#"+diferencia.getSindicato()));
				}
				if(anterior!=0){
					w83adelegadosEscrutinioDiferencia.put("1#H#"+diferencia.getSindicato(), String.valueOf(anterior));
				}
				
				anterior=Integer.parseInt(diferencia.getMujeres());
				if(StringUtils.isNotEmpty((String)w83adelegadosEscrutinioDiferencia.get("1#M#"+diferencia.getSindicato()))){
					anterior=anterior+Integer.parseInt((String)w83adelegadosEscrutinioDiferencia.get("1#M#"+diferencia.getSindicato()));
				}
				if(anterior!=0){
					w83adelegadosEscrutinioDiferencia.put("1#M#"+diferencia.getSindicato(), String.valueOf(anterior));
				}
			}
		}
		contexto.set("w83aListaDiferenciasC1", w83adiferenciaC1);
		contexto.set("w83aListaDiferenciasC2", w83adiferenciaC2);
		
		//contexto.set("w83adelegadosEscrutinioDiferencia", w83adelegadosEscrutinioDiferencia);
		acta.setDelegadosEscrDif(null);
		contexto.set("modoPantalla",W83aClsConstantes.MODO_EDICION);
		if("actas".equals((String)contexto.get("w83aSubOpFlag"))){
			contexto.set("migas","inicio.menuActas.busqActas.edicionActa");
			contexto.set("strTitleKey","comun.actas.edicionActa");
		}*/
		//W83aUsuarioXLNetsBean usuario= (W83aUsuarioXLNetsBean)contexto.get(W83aClsConstantes.CONSTANTE_CONTEXTO_USUARIO);
		//contexto.set("w83aRegManual", usuario.getRegManual());
		contexto.set("strTitleKey","comun.acta");
		contexto.set("w83aNuevaActaBean",acta);
		
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		W83aActasBean acta = (W83aActasBean)((W83aActasBean)contexto.get("w83aNuevaActaBean")).clone();
		acta.setListaDelegados(copyHashMapListaDelegado((HashMap)contexto.get("w83aListaDelegados")));
		contexto.set("w83aDetalleActaTempBean",acta);
		return mapping.findForward("ok");
	}
	
	public HashMap copyHashMapListaDelegado(HashMap copiedHashMap){
		HashMap copyHashMap = new HashMap();
		
       Iterator ite = copiedHashMap.keySet().iterator();
       
       while(ite.hasNext()){
    	   String key = (String)ite.next();    	   
    	   copyHashMap.put(key, new W83aListaDelegadosBean((W83aListaDelegadosBean)copiedHashMap.get(key)));//NOPMD
       }
		
		
		return copyHashMap;
	}

}
